package com.example.vo;

import lombok.Data;
import java.math.BigDecimal;

/**
 * 折扣信息VO
 */
@Data
public class DiscountInfoVO {
    
    /**
     * 原价
     */
    private BigDecimal originalPrice;
    
    /**
     * 折扣率（如0.95表示95折）
     */
    private BigDecimal discountRate;
    
    /**
     * 折扣后价格
     */
    private BigDecimal discountPrice;
    
    /**
     * 节省金额
     */
    private BigDecimal savedAmount;
    
    /**
     * 会员等级
     */
    private String memberLevel;
    
    /**
     * 会员等级名称
     */
    private String memberLevelName;
    
    /**
     * 折扣描述（如"95折"）
     */
    private String discountDescription;
    
    /**
     * 是否有折扣
     */
    private Boolean hasDiscount;
    
    // 构造方法
    public DiscountInfoVO() {
    }
    
    public DiscountInfoVO(BigDecimal originalPrice, String memberLevel, String memberLevelName) {
        this.originalPrice = originalPrice;
        this.memberLevel = memberLevel;
        this.memberLevelName = memberLevelName;
    }
    
    /**
     * 获取折扣描述
     */
    public String getDiscountDescription() {
        if (discountRate == null) {
            return "无折扣";
        }
        
        // 将折扣率转换为折扣描述
        BigDecimal discountPercent = discountRate.multiply(new BigDecimal("10"));
        if (discountPercent.compareTo(new BigDecimal("10")) == 0) {
            return "无折扣";
        }
        return discountPercent.stripTrailingZeros().toPlainString() + "折";
    }
    
    /**
     * 是否有折扣
     */
    public Boolean getHasDiscount() {
        return discountRate != null && discountRate.compareTo(BigDecimal.ONE) < 0;
    }
} 